#include "mt.h"


int main(int argc, char* argv[])
{
	int sock, n;
	
	/*Valido argumentos*/	
	if (argc != 2)
	{
		perror("Error: Debe ingresar la direccion IP. \n");
		exit(1);
	}	

	struct sockaddr_in name;
	struct in_addr ad;

	name.sin_family = AF_INET;
	name.sin_addr.s_addr = INADDR_ANY;
	name.sin_port = htons(PORT);
	name.sin_addr = ad;

	/*Recupero la ip*/
	char* ipChar = argv[1];
	int res = inet_aton(ipChar, &name.sin_addr);

	if (res == 0 )
	{
		perror("Error en la transformacion de la ip");
	}

	/* Crear socket sobre el que se lee: dominio INET, protocolo TCP (STREAM). */
	sock = socket(AF_INET, SOCK_STREAM, 0);
	if (sock < 0) {
		perror("Error abriendo socket");
		exit(1);
	}
	
	char buf[MAX_MSG_LENGTH];


	if (connect(sock,(struct sockaddr *) &name,sizeof(name)) < 0) 
     		printf("ERROR Conectando");


	for(;;)
	{
		/*Comando ingresado*/		

		fgets(buf, MAX_MSG_LENGTH, stdin);
	
		/*Mando el comando al servidor*/
		n = send(sock, buf, strlen(buf)+1, 0);
		
		if (n < 0) 
	        	printf("ERROR escribiendo en el  socket");
		
		if (!strncmp(buf, END_STRING, MAX_MSG_LENGTH))
		{
			break;
		}	
		
		/*Leo del cliente*/	
		
		n = read(sock,buf,MAX_MSG_LENGTH);
   
		if (n < 0) 
			printf("ERROR leyendo el socket");
		
		write(1, buf, n);
		
	}

	close(sock);
	
	return 0;
}
